Micron Document
🎖️GitЯра🎖️

Node / meshtastic / Meshtastic-Android / files / .github / workflows / verify-flatpak.yml

Displaying Raw • Download

.github/workflows/verify-flatpak.yml 817b3ea120d5efc18b3885b99f25a9db14e042a6 (817b3ea1) Text, 6.31 KB

Tff7b72nameTb4b4b4: Ta5d6ffVerifyTa5d6ff Ta5d6ffFlatpakTa5d6ff Ta5d6ffOfflineTa5d6ff Ta5d6ffBuild

Tff7b72onTb4b4b4:
Tff7b72pull_requestTb4b4b4:
Tff7b72branchesTb4b4b4: Tb4b4b4[ Te6edf3main Tb4b4b4]
Tff7b72pathsTb4b4b4:
Tb4b4b4- Ta5d6ff'Ta5d6ffscripts/verify-flatpak/**Ta5d6ff'
Tb4b4b4- Ta5d6ff'Ta5d6ffbuild.gradle.ktsTa5d6ff'
Tb4b4b4- Ta5d6ff'Ta5d6ffsettings.gradle.ktsTa5d6ff'
Tb4b4b4- Ta5d6ff'Ta5d6ff.github/workflows/verify-flatpak.ymlTa5d6ff'
T8b949e# The desktop module's build config shapes the uber jar the flatpak wraps.
Tb4b4b4- Ta5d6ff'Ta5d6ffdesktopApp/**Ta5d6ff'
T8b949e# The offline manifest pins the Gradle distribution independently of the wrapper —
T8b949e# a wrapper bump without a manifest update breaks the offline build silently.
Tb4b4b4- Ta5d6ff'Ta5d6ffgradle/wrapper/**Ta5d6ff'
Tff7b72workflow_dispatchTb4b4b4:

Tff7b72permissionsTb4b4b4:
Tff7b72contentsTb4b4b4: Ta5d6ffread

Tff7b72concurrencyTb4b4b4:
Tff7b72groupTb4b4b4: Ta5d6ffflatpak-verify-${{Ta5d6ff Ta5d6ffgithub.event.pull_request.numberTa5d6ff Ta5d6ff||Ta5d6ff Ta5d6ffgithub.refTa5d6ff Ta5d6ff}}
Tff7b72cancel-in-progressTb4b4b4: Ta5d6fftrue

Tff7b72jobsTb4b4b4:
Tff7b72generate-sourcesTb4b4b4:
Tff7b72runs-onTb4b4b4: Ta5d6ffubuntu-24.04
Tff7b72timeout-minutesTb4b4b4: Ta5d6ff20
Tff7b72stepsTb4b4b4:
Tb4b4b4- Tff7b72usesTb4b4b4: Ta5d6ffactions/checkout@v7.0.1
Tff7b72withTb4b4b4:
Tff7b72submodulesTb4b4b4: Ta5d6ffrecursive

T8b949e# Renovate mirrors wrapper bumps into the manifest's distribution URL but cannot
T8b949e# rewrite its sha256, so on a wrapper bump this drift is expected: fail here in
T8b949e# seconds instead of ~15 minutes into both build-flatpak arches ("Verification of
T8b949e# Gradle distribution failed!", see #6777/#6782).
Tb4b4b4- Tff7b72nameTb4b4b4: Ta5d6ffCheckTa5d6ff Ta5d6ffvendoredTa5d6ff Ta5d6ffGradleTa5d6ff Ta5d6ffdistTa5d6ff Ta5d6ffmatchesTa5d6ff Ta5d6fftheTa5d6ff Ta5d6ffwrapper
Tff7b72runTb4b4b4: Tb4b4b4|
Tff7b72props=gradle/wrapper/gradle-wrapper.properties
Tff7b72manifest=scripts/verify-flatpak/desktop-offline.yaml
Tff7b72wrapper_dist=$(grep '^distributionUrl=' "$props" | sed 's|.*/||' || true)
Tff7b72wrapper_sha=$(grep '^distributionSha256Sum=' "$props" | cut -d= -f2 || true)
Tff7b72manifest_dist=$(grep -o 'gradle-[0-9][^/]*\.zip' "$manifest" || true)
Tff7b72manifest_sha=$(awk '/url:.*services\.gradle\.org\/distributions\//{getline; sub(/^[[:space:]]*sha256:[[:space:]]*/, ""); print}' "$manifest")
Tff7b72if [ -z "$wrapper_dist" ] || [ -z "$wrapper_sha" ]; then
Tff7b72echo "::error file=$props::Could not parse distributionUrl/distributionSha256Sum from $props; the guard in verify-flatpak.yml needs updating."
Tff7b72exit 1
Tff7b72fi
Tff7b72if [ "$wrapper_dist" != "$manifest_dist" ] || [ "$wrapper_sha" != "$manifest_sha" ]; then
Tff7b72echo "::error file=$manifest::Vendored Gradle dist is out of sync: $manifest pins '$manifest_dist' (sha256 '$manifest_sha') but $props pins '$wrapper_dist' (sha256 '$wrapper_sha'). Update the url and sha256 in $manifest; the correct sha256 is distributionSha256Sum in $props."
Tff7b72exit 1
Tff7b72fi
Tff7b72echo "OK: $manifest vendors $wrapper_dist, matching $props"

Tb4b4b4- Tff7b72usesTb4b4b4: Ta5d6ffactions/setup-java@v5
Tff7b72withTb4b4b4:
Tff7b72distributionTb4b4b4: Ta5d6fftemurin
Tff7b72java-versionTb4b4b4: Ta5d6ff25
Tff7b72tokenTb4b4b4: Ta5d6ff${{Ta5d6ff Ta5d6ffgithub.tokenTa5d6ff Ta5d6ff}}

T8b949e# JBR resolves its version list via the GitHub API — unauthenticated requests
T8b949e# rate-limit on the shared runner IPs, so the token is required, not optional.
Tb4b4b4- Tff7b72usesTb4b4b4: Ta5d6ffactions/setup-java@v5
Tff7b72withTb4b4b4:
Tff7b72distributionTb4b4b4: Ta5d6ffjetbrains
Tff7b72java-versionTb4b4b4: Ta5d6ff25
Tff7b72tokenTb4b4b4: Ta5d6ff${{Ta5d6ff Ta5d6ffgithub.tokenTa5d6ff Ta5d6ff}}

Tb4b4b4- Tff7b72usesTb4b4b4: Ta5d6ffgradle/actions/setup-gradle@v6
Tff7b72withTb4b4b4:
Tff7b72develocity-access-keyTb4b4b4: Ta5d6ff${{Ta5d6ff Ta5d6ffsecrets.DEVELOCITY_ACCESS_KEYTa5d6ff Ta5d6ff}}

Tb4b4b4- Tff7b72nameTb4b4b4: Ta5d6ffGenerateTa5d6ff Ta5d6ffflatpak-sources.json
Tff7b72runTb4b4b4: Tb4b4b4|
Tff7b72./gradlew --no-build-cache \
Tff7b72-Dgradle.user.home="$RUNNER_TEMP/flatpak-gradle-home" \
Tff7b72:desktopApp:packageUberJarForCurrentOS :captureFlatpakSources
Tff7b72cp build/flatpak-sources.json flatpak-sources.json
Tff7b72echo "### Flatpak Sources Summary" >> "$GITHUB_STEP_SUMMARY"
Tff7b72echo "- URLs captured: $(jq length flatpak-sources.json)" >> "$GITHUB_STEP_SUMMARY"

Tb4b4b4- Tff7b72usesTb4b4b4: Ta5d6ffactions/upload-artifact@v7
Tff7b72withTb4b4b4:
Tff7b72nameTb4b4b4: Ta5d6ffflatpak-sources
Tff7b72pathTb4b4b4: Ta5d6ffflatpak-sources.json

Tff7b72build-flatpakTb4b4b4:
Tff7b72needsTb4b4b4: Ta5d6ffgenerate-sources
Tff7b72runs-onTb4b4b4: Ta5d6ff${{Ta5d6ff Ta5d6ffmatrix.archTa5d6ff Ta5d6ff==Ta5d6ff Ta5d6ff'aarch64'Ta5d6ff Ta5d6ff&&Ta5d6ff Ta5d6ff'ubuntu-24.04-arm'Ta5d6ff Ta5d6ff||Ta5d6ff Ta5d6ff'ubuntu-24.04'Ta5d6ff Ta5d6ff}}
Tff7b72timeout-minutesTb4b4b4: Ta5d6ff45
Tff7b72strategyTb4b4b4:
Tff7b72matrixTb4b4b4:
Tff7b72archTb4b4b4: Tb4b4b4[Te6edf3x86_64Tb4b4b4, Te6edf3aarch64Tb4b4b4]
Tff7b72fail-fastTb4b4b4: Ta5d6fffalse
Tff7b72stepsTb4b4b4:
Tb4b4b4- Tff7b72usesTb4b4b4: Ta5d6ffactions/checkout@v7.0.1
Tff7b72withTb4b4b4:
Tff7b72submodulesTb4b4b4: Ta5d6ffrecursive

Tb4b4b4- Tff7b72usesTb4b4b4: Ta5d6ffactions/download-artifact@v8
Tff7b72withTb4b4b4:
Tff7b72nameTb4b4b4: Ta5d6ffflatpak-sources

Tb4b4b4- Tff7b72nameTb4b4b4: Ta5d6ffCloneTa5d6ff Ta5d6fftheTa5d6ff Ta5d6ffFlathubTa5d6ff Ta5d6ffpackagingTa5d6ff Ta5d6ffrepo
Tff7b72runTb4b4b4: Tb4b4b4|
Tff7b72git clone --depth 1 --recurse-submodules \
Tff7b72https://github.com/flathub/org.meshtastic.MeshtasticDesktop.git \
Tff7b72"$RUNNER_TEMP/org.meshtastic.MeshtasticDesktop"

Tb4b4b4- Tff7b72nameTb4b4b4: Ta5d6ffWireTa5d6ff Ta5d6ffoverlayTa5d6ff Ta5d6ffmanifestTa5d6ff Ta5d6ff+Ta5d6ff Ta5d6ffsources
Tff7b72runTb4b4b4: Tb4b4b4|
Tff7b72cp scripts/verify-flatpak/desktop-offline.yaml \
Tff7b72"$RUNNER_TEMP/org.meshtastic.MeshtasticDesktop/org.meshtastic.MeshtasticDesktop.yaml"
Tff7b72cp flatpak-sources.json \
Tff7b72"$RUNNER_TEMP/org.meshtastic.MeshtasticDesktop/flatpak-sources.json"
Tff7b72rsync -a --delete \
Tff7b72--exclude='/build/' --exclude='/.gradle/' \
Tff7b72--exclude='*/build/' --exclude='*/.gradle/' \
Tff7b72--exclude='/.idea/' --exclude='/local.properties' \
Tff7b72./ "$RUNNER_TEMP/org.meshtastic.MeshtasticDesktop/meshtastic-android/"

Tb4b4b4- Tff7b72nameTb4b4b4: Ta5d6ffInstallTa5d6ff Ta5d6ffflatpak-builder
Tff7b72runTb4b4b4: Tb4b4b4|
Tff7b72sudo apt-get update -qq
Tff7b72sudo apt-get install -y -qq flatpak flatpak-builder
Tff7b72flatpak remote-add --user --if-not-exists flathub \
Tff7b72https://dl.flathub.org/repo/flathub.flatpakrepo

Tb4b4b4- Tff7b72nameTb4b4b4: Ta5d6ffBuildTa5d6ff Ta5d6ffflatpakTa5d6ff Ta5d6ffoffline
Tff7b72working-directoryTb4b4b4: Ta5d6ff${{Ta5d6ff Ta5d6ffrunner.tempTa5d6ff Ta5d6ff}}/org.meshtastic.MeshtasticDesktop
Tff7b72runTb4b4b4: Tb4b4b4|
Tff7b72flatpak-builder --user --repo=repo --install-deps-from=flathub \
Tff7b72--force-clean builddir org.meshtastic.MeshtasticDesktop.yaml

Tb4b4b4- Tff7b72nameTb4b4b4: Ta5d6ffExportTa5d6ff Ta5d6ff.flatpakTa5d6ff Ta5d6ffbundle
Tff7b72working-directoryTb4b4b4: Ta5d6ff${{Ta5d6ff Ta5d6ffrunner.tempTa5d6ff Ta5d6ff}}/org.meshtastic.MeshtasticDesktop
Tff7b72envTb4b4b4:
Tff7b72ARCHTb4b4b4: Ta5d6ff${{Ta5d6ff Ta5d6ffmatrix.archTa5d6ff Ta5d6ff}}
Tff7b72runTb4b4b4: Tb4b4b4|
Tff7b72flatpak build-bundle repo "org.meshtastic.MeshtasticDesktop.${ARCH}.flatpak" \
Tff7b72org.meshtastic.MeshtasticDesktop \
Tff7b72--runtime-repo=https://flathub.org/repo/flathub.flatpakrepo
Tff7b72echo "### ✅ Offline Flatpak build succeeded ($ARCH)" >> "$GITHUB_STEP_SUMMARY"

Tb4b4b4- Tff7b72usesTb4b4b4: Ta5d6ffactions/upload-artifact@v7
Tff7b72withTb4b4b4:
Tff7b72nameTb4b4b4: Ta5d6ffmeshtastic-desktop-flatpak-${{Ta5d6ff Ta5d6ffmatrix.archTa5d6ff Ta5d6ff}}
Tff7b72pathTb4b4b4: Ta5d6ff${{Ta5d6ff Ta5d6ffrunner.tempTa5d6ff Ta5d6ff}}/org.meshtastic.MeshtasticDesktop/org.meshtastic.MeshtasticDesktop.${{Ta5d6ff Ta5d6ffmatrix.archTa5d6ff Ta5d6ff}}.flatpak

Served by rngit 1.5.2 - Generated in 0.09s